#include<func.h>
#include <bits/types.h>
/*
尝试使用2个线程对同一个全局变量各加2000万，统计加锁解锁的消耗。
使用gettimeofday可以获取高精度当前时间。
*/

//全局变量
int num =0;

//子线程
void* pthreadFunc(void *arg)
{
    pthread_mutex_t *mutex = (pthread_mutex_t *)arg;
    for(int i=0;i<i<10;i++)
    {
        pthread_mutex_lock(mutex);
        num++;
        pthread_mutex_unlock(mutex);
    }
}

int main(void)
{
    //锁初始化
    pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
    pthread_t tid;
    //时间函数
;
    pthread_create(&tid,NULL,pthreadFunc,&mutex);
    //加锁 主线程
    for(int i=0;i<10;i++)
    {
        pthread_mutex_lock(&mutex);
        num++;
        pthread_mutex_unlock(&mutex);
    }
    pthread_join(tid,NULL);
    //printf("total time = %ld us\n",(endTime.tv_sec-begTime.tv_sec)*1000000+endTime.tv_usec);
    printf("num = %d\n",num);

    return 0;
}